package com.dinglian.ots.service;

import com.dinglian.ots.dao.model.User;
import com.dinglian.ots.vo.address.AddAddressVo;
import com.dinglian.ots.vo.address.AddressListVo;
import com.dinglian.ots.vo.address.UpdateAddressVo;
import com.dinglian.ots.vo.brand.AgreeVo;
import com.dinglian.ots.vo.buyer.*;
import com.dinglian.ots.vo.collection.CollectionVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @author wangbo
 */
public interface BuyerService {

    /**
     * 保存买手帐号
     * @param buyerVo
     * @return
     */
    User saveBuyer(BuyerVo buyerVo);

    /**
     * 买手收藏
     * @param collectionVo
     */
    void buyerCollect(CollectionVo collectionVo);

    /**
     * 添加收货地址
     * @param addressVo
     */
    void addAddress(AddAddressVo addressVo);

    /**
     * 修改收货地址
     * @param addressVo
     */
    void updateAddress(UpdateAddressVo addressVo);

    /**
     * 删除收货地址
     * @param addressId
     */
    void deleteAddress(Integer addressId);

    /**
     * 获取收货地址列表
     * @param userId
     * @return
     */
    List<AddressListVo> getAddressList(Integer userId);

    /**
     * 买手意向申请
     * @param applicationVo
     */
    void applyForIntention(ApplicationVo applicationVo);


    /**
     * 同意 驳回
     * @param agreeVo
     */
    void agreeInvitation(AgreeVo agreeVo);

    /**
     * 获取买手资料
     * @param userId
     * @return
     */
    BuyerInfoVo getBuyerInfo(Integer userId);

    /**
     * 更新买手资料
     * @param buyerVo
     */
    void updateBuyerInfo(UpdateBuyerVo buyerVo);

    /**
     * 查询买手
     * @param brandId
     * @param provinceId
     * @param cityId
     * @param styleIds
     * @param type
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<SearchBuyerVo> searchBuyer(Integer brandId, Integer provinceId, Integer cityId, String styleIds, String type, Integer pageNum, Integer pageSize);
}
